#!/bin/bash
#输出当前时间
echo -e "\n\nStart----- $(date "+%Y-%m-%d %H:%M:%S")"
#判断宝塔WebHook参数是否存在  $1 为gitee 钩子 param参数值，theme（更新主题）|blog（更新博文）可选
if [ ! -n "$1" ]; then
  echo "param参数错误"
  echo "End"
  exit 1
fi

#hexo项目本地路径
gitPath="/usr/local/hexo"
#web站点根目录
domainName="blog.smilerun.cn"
#git 两种地址都可以
#gitHttp="https://gitee.com/xxxx/xxxx.git"
#hexo已配置主题仓库地址（使用ssh免密方式更新）
gitHttp="git@gitee.com:smilerunning/smilerunning.git"
#markdown文章仓库地址（使用ssh免密方式更新）
gitBlogHttp="git@gitee.com:smilerunning/md-blog.git"
#默认主题
defaultTheme=""
#判断项目路径是否存在
if [ ! -d "$gitPath" ]; then
  echo "$gitPath 该项目路径不存在,自动创建该项目"
  mkdir -p $gitPath
fi
echo "hexo路径：$gitPath"
case $1 in
matery)
  defaultTheme=$1
  ;;
butterfly)
  defaultTheme=$1
  ;;
blog)
  echo "即将开始从远程仓库$gitBlogHttp 拉取更新博文！"
  ;;
*)
  echo "未定义此主题，构建失败！"
  exit 1
  ;;
esac
if [ $defaultTheme != "" ]; then
  echo "即将开始从远程仓库$gitHttp 拉取更新主题！"
  #拉取更新
  cd $gitPath
  if [ ! -d ".git" ]; then
    echo "在$gitPath 初始化git仓库"
    git init
    git remote add origin $gitHttp
  fi
  git reset --hard
  git pull origin master
  echo "拉取主题成功！"
  echo "本地仓库最新记录："
  git log -1 --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
  echo ""
  #切换主题
  line=$(sed -n -e "/theme:.*/=" _config.yml)
  echo $line
  sed -i "$line c theme: $defaultTheme" $gitPath/_config.yml
fi
#同步博文
if [ ! -d "$gitPath/source/_posts" ]; then
  echo "博文无法同步，hexo结构已损坏，请先检查更新源结构"
  exit 1
fi

#拉取更新
git clone -b master $gitBlogHttp $gitPath/md
echo "拉取博文成功！"
cd $gitPath/md
echo "博文最新记录："
git log -1 --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
echo ""
mv -f $gitPath/md/*.md $gitPath/source/_posts
rm -rf $gitPath/md
cd $gitPath
#安装依赖
npm install

#构建Gitee页面
#编译文件
echo "开始编译Gitee页面"
npx hexo g -b -f
echo "即将开始更新Gitee站点！"
git add . && git commit -m "update blog" && git fetch && git pull --rebase origin master && git push origin master
npx hexo clean
echo "Gitee站点构建完成"

#构建服务器页面
urlLine=`sed -n -e "/url:.*.gitee.io/=" _config.yml`
echo $urlLine
sed -i "$urlLine c url: https://$domainName/" $gitPath/_config.yml
#编译文件
echo "开始编译服务器页面"
npx hexo g -b -f
echo "即将开始构建更新站点！"
if [ ! -d "/www/wwwroot/$domainName" ]; then
  echo "/www/wwwroot/$domainName web站点路径不存在,自动创建该项目"
  mkdir -p /www/wwwroot/$domainName
fi
echo "Web站点路径：/www/wwwroot/$domainName"
#复制到web站点根目录
if [ ! -d "$gitPath/public" ]; then
  echo "hexo生成站点页面失败，请尝试重新编译"
  exit 1
fi
rm -rf /www/wwwroot/$domainName/*
cp -rf $gitPath/public/* /www/wwwroot/$domainName
npx hexo clean
echo "服务器站点构建完成"

rm -rf $gitPath/source/_posts/*
echo "Success"
exit 0
